...

<form name="addbook" role="add" ng-submit="submitForm()" novalidate>
    <input id="udc" 
           name="udc"
           type="text"
           placeholder="{{ 'enter.book.ubd' | translate}}" 
           class="form-control" 
           ng-model="bookData.ubd" 
           required 
           ng-pattern="/^[0-9]{1,4}(\.[0-9]{2})?$/"
    />

...
    
    <input id="title" 
           name="title" 
           type="text" 
           placeholder="{{ 'enter.book.title' | translate}}" 
           class="form-control" 
           ng-model="bookData.title" 
           required 
           ng-minlength="4" 
           ng-maxlength="255"
    />
    
    <input id="year" 
           name="year" 
           type="number" 
           placeholder="{{ 'enter.book.publish.year' | translate}}" 
           class="form-control" 
           ng-model="bookData.year" 
           ng-change="validateChosenYear()"
    />

...

<h3>{{ 'fields.explanation' | translate }}</h3>
<ul>
    <li ng-class="{'text-error': addbook.udc.$invalid && !addbook.udc.$pristine }">
      <strong>{{ 'book.udc' | translate }}</strong> : {{ 'book.udc.description' | translate }}
    </li>

...
    
    <li ng-class="{'text-error': addbook.title.$invalid && !addbook.title.$pristine }">
      <strong>{{ 'title' | translate }}</strong> : {{ 'book.title.description' | translate }}
    </li>
    
...
    
    <li ng-class="{'text-error': addbook.year.$invalid && !addbook.year.$pristine }">
      <strong>{{ 'book.publish.year' | translate }}</strong> : {{ 'book.publish.year.description' | translate }}
    </li>
</ul>

